perm filename ALPHA.FAI[NEW,LCS]9 blob
sn#513516 filedate 1980-05-20 generic text, type T, neo UTF8
00100 TITLE ALPHA
00200 ENTRY ALPHA
00300 INTERNAL NFONT
00400 EXTERNAL .COMM.,STF,POSI,PLTR,FONT,SPACER,PNUM,ROFF
00500 EXTERNAL ITMSUB,RHORZ,CLEFS,KSIG,LINES,ALF,OLDTOP,NOTWRT
00600 DEFINE JTR<.COMM.+=20> ↔ DEFINE RB<.COMM.+=43> ↔DEFINE RW<.COMM.+=42>
00700 DEFINE RX<.COMM.+=40> ↔DEFINE RY<.COMM.+=39> ↔ DEFINE R<.COMM.+=23>
00800 DEFINE RF<.COMM.+=18> ↔ DEFINE JR3<.COMM.+=27>↔ DEFINE IFNT<.COMM.+=36>
00900 DEFINE RZ<.COMM.+=41>↔ DEFINE JX<.COMM.+=34> ↔ DEFINE R8<.COMM.+=9>
01000 DEFINE J8<.COMM.+=29>
01100 FILL: 0
01200 NFONT: ASCII/BDR40/ ;WILL BE CURRENT FONT NAME
01300 FNAME: ASCII/PRIM0/ ;POSSIBLE FONT NAMES - FOR NOW.
01400 ASCII/BDR40/
01500 ASCII/BDI40/
01600 ASCII/BDL40/ ;BDR LIGHT-FACE
01700
01800 ALPHA: 0
01900 MOVE .COMM.+1 ;JA
02000 CAIN 7
02100 JRST AL20 ;JA=7 IS FOR TRILLS, ETC.
02200 ;; SKIPN 1,.COMM.+=13 ;IF(R12.EQ.0)SKIP
02300 ;; JRST ALPH
02400 ;; MOVE .COMM.+6 ;SIZE=P5*RSTJ2
02500 ;; MOVEM SIZE#
02600 ALPH: MOVEI =99
02700 MOVEM JTR
02800 MOVE .COMM.+6
02900 CAMGE [100.0]
03000 JRST .+3
03100 MOVN [100.0]
03200 FADRM .COMM.+6 ;IF(R5.GE.100)R5=R5-100
03300 MOVN 1,FONT ;SHI=ITAL., SHP=PRIM, SHO=BDR
03400 JUMPLE 1,ALX54 ;IF(JFONT.GE.0)GO TO ALX54
03500 MOVEI 1
03600 MOVEM FONT ;JFONT=1
03700 MOVE FNAME-1(1) ;GET THE DESIRED FONT NAME
03800 JRST AL54-1 ; PUT IT IN NR
03900 ALX54: MOVE NFONT
04000 CAME FNAME
04100 CAMN FNAME+2
04200 JRST AL54
04300 MOVE FNAME+1 ;DEFAULT FONT IS BDR40
04400 MOVEM NFONT
04500 AL54: MOVE [19.7]
04600 FMPR .COMM.+6
04700 FMPR STF+=8
04800 MOVEM R ;OR JUST LEAVE IN AC0
04900
05000 FLTR 1,.COMM.+=24 ;MOVE 1,.COMM.+=24 ;J3
05100 MOVEM 1,RB ; OR LEAVE IN AC1
05200 MOVE 2,.COMM.+5
05300 MOVEM 2,RW ; OR LEAVE IN AC2
05400 SETZM .COMM.+=30 ;J9=0
05500 MOVEI 15,4
05600 AL50X: SETOM NXZ# ; THE BIG LOOP
05700 MOVEM 15,K#
05800 MOVE 3,.COMM.+3(15) ;RZ IS AC3
05900 FADR 3,[0.2]
06000 KIFIX 0,3 ;JSA 16,IFIX
06100 ; JUMP 3
06200 MOVEM JY#
06300 MOVE 4,[=1000000] ; 4 IS JX
06400 MOVEM 4,JX
06500 MOVEI 14,1 ; LA
06600 AL53X: MOVEM 14,LA#
06700 MOVE JY
06800 IDIV JX
06900 MOVEM J5X#
07000 FLTR 2,.COMM.+=24 ;MOVE 2,.COMM.+=24 ;R3=J3
07100 ; TLC 2,232000
07200 ; FADR 2,2
07300 MOVEM 2,.COMM.+4
07400 CAIN =99
07500 JRST AL55
07600 AL73: SKIPL KFNT#
07700 JRST .+3
07800 MOVEI 2,1
07900 MOVEM 2,IFNT
08000 CAIGE =70
08100 JRST AL72
08200 SETOM KFNT
08300 SETOM IFNT
08400 SUBI =60
08500 MOVEM .COMM.+=26 ; J5
08600
08700 AL72: CAIGE =48
08800 JRST AL1
08900
09000 CAIN =48 ; 48=BDL LIGHT-FACE FONT
09100 JRST BDL
09200 CAIG =49
09300 JRST AL72X
09400 CAIN =50
09500 JRST AL2
09600 CAIN =51
09700 JRST AL3
09800 CAIN =52
09900 JRST AL9
10000 CAIN =53
10100 JRST AL4
10200 CAIN =54
10300 JRST AL5
10400 AL72X: CAILE =55
10500 JRST AL10
10600 MOVEI =36 ;J5=36 LINE 6200 IN ALPHA.F4 11/3/76
10700 MOVE 2,[2.9]
10800 FMPR 2,.COMM.+6 ;R4=R4+2.9*R5
10900 FADRM 2,.COMM.+5 ; R4
11000 JRST AL1
11100
11200 AL3: MOVE 2,FNAME+2 ; CODE 51
11300 SKIPA
11400
11500 AL2: MOVE 2,FNAME+1 ; CODE 50
11600 SKIPGE FONT
11700 AL9: MOVE 2,FNAME ; CODE 52
11800 MOVEM 2,NFONT
11900 JRST AL11
12000 BDL: MOVE 2,FNAME+3 ;CODE 53 BDR LIGHT-FACE
12100 JRST AL2+1
12200
12300 AL4: MOVNI 2,2 ;FILL=-2 FOR NO FILLER WHEN PRINTING ********
12400 MOVEM 2,FILL ;FILL WAS EQUIV. TO RJQ(19)
12500 JRST AL11
12600
12700 AL5: SETZM FILL ;****** DANGER ****************
12800 JRST AL11 ;MUST BE RESET IF 'NOFILL' WAS USED ***********
12900
13000 AL10: ADDI 6
13100 MOVE 2,NFONT
13200 MOVEM 2,NRX#
13300 SETZM NXZ#
13400 MOVE 2,FNAME+1
13500 MOVEM 2,NFONT
13600 MOVE 2,FONT
13700 MOVEM 2,NJF#
13800 SETOM FONT ; JFONT
13900
14000 AL1: MOVEM .COMM.+=26 ;PUT AWAY J5
14100 CAIL =70 ;IF(J5.LT.70.OR.J5.GT.74)GO TO AL71 70=64=ACCENT #1
14200 CAIL =76
14300 JRST AL12
14400 CAIE =75 ;IS IT 1/8 NOTE (69+6=75)
14500 JRST .+4 ;NO
14600 MOVEI =70 ;YES
14700 MOVEM .COMM.+=26 ;J5=70 (IT'S IN BDR47, LOC.0)
14800 JRST AL12
14900 MOVE 2,FNAME+2 ;FOR ACCENTS OVER CHARS.
15000 MOVEM 2,NFONT ;GET BDI40
15100 SUBI 0,6 ;SET BACK THE CHAR. NUMBERS TO 64-68
15200 JRST AL71-1 ;GO PUT AC0 BACK INTO J5
15300
15400 AL12: MOVEM 0,OLDJ5#
15500 CAIGE =64 ;IF 64 OR 65 TAKE AWAY 6 1/4 1/2
15600 JRST AL12X
15700 MOVE 1,0
15800 CAIG =65
15900 SUBI 1,6
16000 CAIN =70 ;IF 70 TAKE AWAY 1 1/8
16100 SOJ 1,
16200 MOVEM 1,.COMM.+=26 ;PUT REVISED NUM INTO J5
16300
16400 AL12X: JSA 16,SPACER
16500 JUMP .COMM.+=26 ;J5
16600 JUMP IFNT
16700 JUMP RB
16800 JUMP R
16900 MOVE OLDJ5
17000 MOVEM .COMM.+=26 ;GET BACK ORIGINAL FORM OF J5
17100 CAILE =60
17200 JRST AL71
17300 CAIN =47
17400 JRST AL6
17500 CAIL =47
17600 JRST AL11
17700 SKIPN .COMM.+=13 ;IF(P11.NE.0.AND.P12.EQ.0)GO TO AL79 ROTATE
17800 SKIPN 2,.COMM.+=12 ; LABEL 7 IN ALPHA.F4
17900 SKIPA
18000 JRST AL79
18100 SKIPG FONT ;NO ROTATION P11=0 OR P12.NE.0 (=DASH)
18200 JRST AL78
18300 JRST AL77
18400 AL79: MOVEM 2,.COMM.+=10 ; R9=R11 (DEGREES OF ROTATION
18500 SETOM .COMM.+=30 ;J9=-1 FOR ROTATION IN 'CLEFS'
18600 JRST AL77
18700 AL277: MOVE 2,FNAME ;IF(NFONT.NE.'PRIM0')GO TO 70
18800 CAME 2,NFONT
18900 JRST AL70
19000 SKIPGE IFNT
19100 CAIGE =10
19200 JRST AL30
19300 JRST AL71
19400
19500 AL177: ADDI =22 ;J5=J5+22 (=62 )=63 IN BDI (BDI46)
19600 MOVEM .COMM.+=26
19700 MOVE NFONT ;SAVE OLD FILE NAME
19800 MOVEM NRX
19900 MOVE FNAME+2 ;BDI40
20000 MOVEM NFONT
20100 MOVE FONT
20200 MOVEM NJF ;SAVE FONT FLAG
20300 SETZM NXZ ;FLAG TO GET BACK RIGHT FLAGS BEFORE AL30
20400 JRST AL71
20500
20600 AL70: CAILE =9
20700 SKIPL IFNT ;IFNT IS .COMM.+=36
20800 JRST AL71
20900 ADDI =26
21000 MOVEM .COMM.+=26 ; J5
21100
21200 AL71: MOVE 2,.COMM.+7
21300 MOVEM 2,RX
21400 MOVE 2,[0.28]
21500 FMPR 2,.COMM.+6
21600 MOVEM 2,.COMM.+7
21700 MOVE 3,.COMM.+=8
21800 MOVEM 3,RY
21900 MOVEM 2,.COMM.+=8
22000 MOVE 2,R8
22100 MOVEM 2,RZ ; LINE 11400 IN ALPHA.F4
22200 MOVE 2,[-2.1]
22300 FADRM 2,.COMM.+5
22400 MOVE 2,FILL
22500 MOVEM 2,J8
22600 MOVE 2,NFONT
22700 MOVEM 2,.COMM.+=11 ; NRJ IS EQUIV TO R10
22800 MOVEI 2,=12
22900 MOVEM 2,.COMM.+1
23000 SETZM R8 ;TO AVOID CLEFS THICKENER
23100 JSA 16,CLEFS
23200 MOVE 2,RX
23300 MOVEM 2,.COMM.+7
23400 MOVE 2,RY
23500 MOVEM 2,.COMM.+=8
23600 MOVE 2,RZ
23700 MOVEM 2,R8
23800 SKIPGE NXZ
23900 JRST AL6
24000 MOVE 2,NRX
24100 MOVEM 2,NFONT
24200 MOVE 2,NJF
24300 MOVEM 2,FONT
24400 JRST AL6
24500
24600 AL78: SKIPL PLTR ;IF(PLTR.GE.0)GO TO 30
24700 JRST AL30
24800 AL77: CAIGE =36 ;IF(J5.LT.36)GO TO 277
24900 JRST AL277
25000 CAIE =40 ; A LEFT PARENTH?
25100 CAIN =41 ; A RIGHT "
25200 JRST AL177
25300 CAIE =43 ;IF(J5.NE.43)GO TO AL30 CATCH ASTERISK
25400 JRST AL30
25500 MOVE 2,NFONT
25600 CAMN 2,FNAME ; IF(NFONT.EQ.'PRIM0')GO TO AL30
25700 JRST AL30
25800 CAMN 2,FNAME+2 ;IF(NFONT.EQ.'BDI40')GO TO AX77
25900 JRST AX77
26000 MOVEM 2,NRX ;NRX=NFONT STORE IT FOR LATER USE
26100 SETZM NXZ ;SET RETRIEVAL FLAG
26200 MOVEM NJF ;MAKE NJF ANY POS. NUM.
26300 MOVE 2,FNAME+2 ;NFONT='BDI40'
26400 MOVEM 2,NFONT
26500 AX77: MOVEI =69 ;J5=69
26600 MOVEM .COMM.+=26
26700 JRST AL71 ;GO TO AL71
26800
26900 AL30: SETZM .COMM.+=28 ;J7=0
27000 MOVE 2,.COMM.+6
27100 MOVEM 2,.COMM.+7
27200 JSA 16,PNUM
27300 AL6: JSA 16,ROFF
27400 JUMP RB
27500 KIFIX 0,0 ;MOVE 2,
27600 ; JSA 16,IFIX
27700 ; JUMP 2
27800 MOVEM .COMM.+=24 ;J3=ROFF(RB)
27900 MOVE 2,RW
28000 MOVEM 2,.COMM.+5
28100 AL11: MOVN 2,J5X
28200 IMUL 2,JX
28300 ADDM 2,JY
28400 AL53: MOVE 2,JX
28500 IDIVI 2,=100
28600 MOVEM 2,JX
28700 MOVE 14,LA
28800 CAIGE 14,4
28900 AOJA 14,AL53X
29000
29100 AL50: MOVE 15,K
29200 CAIGE 15,6
29300 AOJA 15,AL50X
29400 AL55: MOVE 2,JTR
29500 CAIE 2,=99
29600 JRST AL52
29700 MOVE NFONT
29800 MOVEM SAVFNT
29900 JRST AL100
30000
30100 AL20: MOVE .COMM.+7 ; FOR TRILLS, ETC. R6
30200 MOVEM RF
30300 MOVE NFONT
30400 MOVEM SAVFNT# ;SAVE THE FONT NAME, RETURN IT AT END.
30500 MOVE .COMM.+=28 ; J7 IS IN AC0 SAVE J7 IN TRILL
30600 MOVEM TRILL#
30700 CAIG 1
30800 JRST AL200
30900 CAIL =8
31000 JRST AL201
31100
31200 MOVE 2,R8 ;NOE PED. MARKS J7 >1, <8
31300 MOVEM 2,RW
31400 MOVE 2,.COMM.+4
31500 MOVEM 2,RB
31600 MOVEM NFONT ; NFONT=J7
31700 MOVE 2,.COMM.+=26 ;J5
31800 MOVEM 2,JY
31900 MOVE 2,.COMM.+=10 ;R9
32000 JUMPN 2,.+3
32100 MOVSI 2,201400 ;[1.0]
32200 MOVEM 2,.COMM.+=10
32300 MOVEM 2,RY
32400 FMPR 2,STF+=8
32500 FMPR 2,[23.84]
32600 MOVEM 2,RX
32700 MOVE 2,[0.45]
32800 FMPR 2,RY
32900 MOVEM 2,.COMM.+7
33000 SETZM .COMM.+=30 ; J9=0 LINE 16500
33100 MOVEI 2,=18
33200 MOVEM 2,.COMM.+=26
33300 MOVEI 2,3
33400 MOVEM 2,.COMM.+1 ;JA=3
33500 SETZM .COMM.+6
33600 SETZM .COMM.+=8
33700 MOVSI 2,574200 ;[-6.0]
33800 FADRM 2,.COMM.+5 ;R4=R4-6 PUTS PED MARK BELOW STF.
33900 SETZM R8 ;R8=0 NEEDED IN CLEFS.
34000 JSA 16,CLEFS
34100
34200 SKIPN 1,JY
34300 JRST AL222
34400 MOVSI 2,576400 ;[-1.0]
34500 MOVEM 2,R8 ; R8=-1
34600 MOVEI 2,=19
34700 MOVEM 2,.COMM.+=26 ; J5=19
34800 CAIGE 1,=100
34900 JRST AL203
35000 SUBI 1,=100
35100 MOVEM 1,JY
35200 JSA 16,CLEFS
35300 AL203: MOVE 2,RB
35400 FADR 2,RX
35500 MOVEM 2,.COMM.+4
35600 MOVE JY
35700 CAIGE =10
35800 JRST AL204
35900 SUBI =10
36000 MOVEM JY
36100 JSA 16,CLEFS
36200 AL204: MOVE 2,RB
36300 FADR 2,RX
36400 FADR 2,RX ; R3=RB+RX+RX
36500 MOVEM 2,.COMM.+4
36600 SKIPE JY
36700 JSA 16,CLEFS
36800
36900 AL222: MOVE NFONT ;NFONT SAVED J7
37000 CAIN 2
37100 JRST TRLEND
37200 SKIPN 2,RW ;RW SAVED R8
37300 JRST ALX
37400 FMPR 2,[5.96]
37500 FSBR 2,RB
37600 MOVNM 2,.COMM.+4
37700 ALX: MOVE 2,POSI+=9 ;RX=POS
37800 MOVEM 2,RX
37900 MOVE 2,RF
38000 MOVEM 2,.COMM.+=7
38100 MOVSI 2,202600 ;[3.0]
38200 FADRB 2,.COMM.+5
38300 MOVEM 2,.COMM.+6 ;R5=R4
38400 SETZM .COMM.+=28
38500 SETZM .COMM.+=8
38600 SETZM R8
38700 SETZM .COMM.+=11 ; R10=0
38800 AL206: JSA 16,ITMSUB
38900 MOVE NFONT
39000 CAIN 4 ;J7=4=NO BRACK.
39100 JRST TRLEND
39200 ;; CAIE 5 ;IF(J7.EQ.5.OR.J7.EQ.7)GO TO AX206
39300 ;; CAIN 7 6 AND 7 NOT ACTIVATED**** ;=5= → =7= ↔ =6= ←¬
39400 CAIN 5 ;IF(J7.EQ.5)GO TO AX206 MAKE AN ARROW →
39500 JRST AX206
39600 MOVSI 204500 ;10.0
39700 FMPR RY ;*RSTJ2*R9
39800 FMPR STF+=8 ;THIS WILL BE VERTICAL PART OF BRACK. END.
39900 FADRM OLDTOP ;* THE Y COORD. FROM LAST 'LINES' CALL
40000 JSA 16,LINES
40100 JUMP ALF+=10 ;THE LAST X COORD. TO 'LINES'
40200 JUMP OLDTOP ; Y
40300 JUMP [2] ; IF CHANGES ARE MADE IN ITMSUB THIS IS WRECKED!!
40400 ;;; ;R3=ROFF(RHORZ(RF))
40500 JRST TRLEND
40600
40700 AX206: MOVSI 2,202440 ;2.25 LENGTH OF ARROW (CRESC.) =2*STFSIZ*R9
40800 FMPR 2,RY ;*R9
40900 FMPR 2,STF+8
41000 MOVE 3,[2.12]
41100 FADRM 3,.COMM.+5 ;R4=R4+2.12 (R4 WAS EARLIER R4-3)
41200 MOVEI 3,4 ;JA=4
41300 MOVEM 3,.COMM.+1
41400 MOVEI 3,=50 ;J5=50 (FOR CRESC.)
41500 MOVEM 3,.COMM.+=26
41600 MOVE 3,[1.29] ;1.29*R9 WIDTH OF OPENING
41700 FMPR 3,RY ; (*R9)
41800 ;; CAIN 6 ;IF → CHANGE TO NEG. -- FOR R7
41900 ;; JRST AY206 ;NEXT FOR →
42000 MOVE 5,RF ;GET SAVED R6
42100 MOVEM 5,.COMM.+7
42200 FSBR 5,2 ;SUBTRACT SIZE OF ARROW
42300 FMPR 5,[5.96] ;*5.96-596.0
42400 FSBR 5,[596.0]
42500 ;; JRST AZ206
42600
42700 ;;AY206: MOVNS 3 ;THIS FOR ←
42800 ;; FADR 2,RW ;GET R6
42900 ;; MOVEM 2,.COMM.+7
43000 ;; MOVN 5,RW ;GET R8
43100 ;; FMPR 5,[5.96]
43200 ;; FMPR 5,STF+8 ;*RSTJ2*5.96
43300 ;; FADR 5,RB ;R3=R3-R8*↑
43400
43500 AZ206: MOVNM 3,.COMM.+8 ;R7
43600 MOVEM 5,.COMM.+4 ;R3
43700 JSA 16,ITMSUB ;GO DRAW CRESC.
43800 ;; MOVE NFONT ;GET BACK J7
43900 ;; CAIE 7 ;IF(J7.NE.7)GO TO TRLEND
44000 JRST TRLEND
44100 ;; MOVEI 6
44200 ;; MOVEM NFONT
44300 ;; JRST AX206 ;NOW DO 2ND ARROW, I.E. ←
44400
44500
44600 AL202: MOVE 7,[47717088.0] ; FOR 8VA BASSA
44700 MOVE 2,[88709999.0]
44800 MOVEM 2,R8
44900 MOVSI 10,210424 ;[138.0]
45000 JRST AL214-1
45100
45200 AL201: SKIPN 2,.COMM.+6 ;CALL NOZERO(R5)
45300 MOVSI 2,201400 ;[1.0]
45400 MOVEM 2,.COMM.+6
45500 MOVE .COMM.+=28
45600 CAIN =15
45700 JRST AL205
45800 MOVSI 10,206570 ;[47.0]
45900 MOVE 7,[99999999.0]
46000 MOVE 6,[51089170.0]
46100 AL214: MOVEM 10,RR10#
46200 MOVE 2,.COMM.+6
46300 FMPR 2,STF+=8 ;RR5 IS AC2
46400 FMPR 10,2 ;AC10 WILL BE RR3
46500 FADR 10,.COMM.+4
46600 MOVEM 10,RR3#
46700 SETOM JTR
46800 MOVE 2,.COMM.+=28
46900 MOVEM 2,.COMM.+=25 ;J4=J7
47000 MOVE 2,J8
47100 MOVEM 2,.COMM.+=31 ;J10=J8
47200 JRST AL212
47300
47400 AL205: MOVE 6,[51010582.0]
47500 MOVE 7,[70999999.0]
47600 MOVSI 10,206700 ;[56.0]
47700 JRST AL214
47800
47900 AL213: MOVE 2,[1.8]
48000 FMPR 2,.COMM.+6 ; WAS → FMPR 2,RR5
48100 MOVEM 2,R8
48200 SETZM .COMM.+=10
48300 MOVE 2,RR3
48400 MOVEM 2,.COMM.+4
48500 MOVE 2,RF
48600 MOVEM 2,.COMM.+7
48700 MOVE 2,[0.7]
48800 FMPR 2,STF+=8
48900 FADRB 2,.COMM.+5
49000 MOVEM 2,.COMM.+6
49100 SETOM .COMM.+=32 ;J11=-1
49200 SKIPGE .COMM.+=25
49300 MOVNS .COMM.+=32 ;IF(J4)J11=-J11
49400 SKIPE .COMM.+=31 ;IF(J10.NE.)J11=0
49500 SETZM .COMM.+=32
49600 MOVEI 2,1
49700 MOVEM 2,.COMM.+=28
49800 SETZM .COMM.+=31 ;J10=0
49900 JSA 16,ITMSUB
50000 JRST TRLEND
50100
50200 AL200: MOVE 2,.COMM.+6
50300 JUMPN 2,.+3
50400 MOVSI 2,201400 ;[1.0]
50500 MOVEM 2,.COMM.+6
50600 MOVN 4,.COMM.+=28 ;IF(J7.EQ.-8)GO TO 202
50700 CAIN 4,=8
50800 JRST AL202 ;← TO OTTAVA BASSA
50900 MOVEM 2,RR10
51000 MOVSI 2,203600 ;[6.0]
51100 FMPR 2,STF+=8
51200 KIFIX 0,2 ;IFIX
51300 ADDB .COMM.+=24 ;J3=J3+6*RSTJ2
51400 MOVEM JR3
51500 MOVE 6,[51898799.0] ; MAKE UP "TR"
51600 ;; MOVE 7,[99999999.0]
51700 SETZ 7, ;MAKE R7=0
51800 MOVNM 4,JTR ; -J7 WAS IN AC4
51900 AL212: MOVEM 6,.COMM.+=7 ; JTR IS TRILL FLAG IN LETTERS SECTION.
52000 MOVEM 7,.COMM.+=8
52100 MOVE 2,[0.8]
52200 FMPRM 2,.COMM.+6
52300 JRST AL54
52400
52500 AL52: KIFIX .COMM.+=9
52600 MOVEM .COMM.+=26 ;J5=R8 (FOR ACCI OVER TR)
52700 MOVE POSI+11 ;SAVE 'POS' IN K FOR ACCI ROUTINE
52800 MOVEM K
52900 SKIPE JTR ;J7=1=NO WIGGLE, 0=YES
53000 JRST ACCI
53100 FLTR 3,JR3 ;FLOAT JR3
53200 MOVSI 2,205500 ;[20.0]
53300 FMPR 2,STF+=8
53400 FMPR 2,RR10
53500 FADR 2,3
53600 MOVEM 2,.COMM.+4
53700 MOVEI 4
53800 MOVEM .COMM.+1
53900 MOVEI 2
54000 MOVNM .COMM.+=28
54100 MOVE RF
54200 MOVEM .COMM.+7
54300 MOVE [0.7]
54400 FMPR RR10
54500 MOVEM .COMM.+=10
54600 MOVE [0.9]
54700 FMPR RR10
54800 MOVEM R8
54900 SETZM .COMM.+=31
55000 SKIPGE PLTR
55100 AOS .COMM.+=31
55200 JSA 16,ITMSUB
55300 ACCI: SKIPGE 2,TRILL ;NEXT PUTS ACCI OVER TR IF 1, 2 OR 3 IN P8
55400 JRST AL100 ;IF J7 (TRILL)=0 OR 1 IT'S A TRILL
55500 CAIG 2,1 ;ELSE GO TO TRLEND (NO ACCI POSSIBLE)
55600 SKIPN .COMM.+=9 ;IF(R8.EQ.0)GO TO TRLEND (R8 HAS ACCI. NUM.)
55700 JRST AL100 ; NO ACCI. - JUMP
55800 MOVE K ;GET BACK 'POS' (IT GOT CHANGED IN WIGGLE)
55900 MOVEM POSI+11 ; POS
56000 MOVSI 205660 ;[27.0] CENTR=CENTR+27*RSTJ2
56100 FMPR STF+10 ; *RSTJ2
56200 FADRM .COMM.+2 ; CENTR
56300 MOVE [0.9] ;R6=R5*.9
56400 FMPR .COMM.+6
56500 MOVEM .COMM.+7
56600 FLTR 2,.COMM.+30 ;R3=J3-12*RSTJ2
56700 MOVSI 573100 ;[-14.0]
56800 FMPR STF+10
56900 FADR 2
57000 MOVEM .COMM.+4
57100 MOVSI 202740 ;R4=R4+3.75
57200 FADRM .COMM.+5 ; R4 IS FOR NON-FONT DISPLAY ONLY
57300 SETZM .COMM.+8 ;R7=0
57400 SETZM .COMM.+9 ;R8=0
57500 SETZM .COMM.+12 ;R9=0
57600 MOVEI 9 ;JA=9
57700 MOVEM .COMM.+1
57800 JSA 16,NOTWRT ;GO MAKE THE ACCI.
57900
58000 AL100: SKIPGE JTR
58100 JRST AL213
58200 SKIPL KFNT
58300 JRST .+3
58400 MOVEI 1
58500 MOVEM IFNT
58600 SETZM KFNT
58700 TRLEND: MOVE SAVFNT ;GET BACK ORIGINAL FONT NAME
58800 MOVEM NFONT
58900 ;; SKIPN 1,.COMM.+=13 ;IF(R12.EQ.0)RETURN
59000 JRA 16,(16) ;END
59100
59200 ;; MOVEI 4 ;NEXT FOR DASH AFTER SYLLABLE
59300 ;; MOVEM .COMM.+1 ;JA=4
59400 ;; MOVE .COMM.+=13 ;GET ENDPOINT OF DASH P12=LENGTH OF DASH
59500 ;; FADR .COMM.+=12 ; END OF DASH = P11+P12
59600 ;; MOVEM .COMM.+7 ;R6=DSHEND
59700 ;; JSA 16,RHORZ ;R3=RHORZ(R11) LEFT SIDE OF DASH
59800 ;; JUMP .COMM.+=12
59900 ;; MOVEM .COMM.+4
60000 ;; MOVN [0.5] ;SET HEIGHT OF DASH
60100 ;; FMPR SIZE ;*SIZE FACTOR (P5*RSTJ2)
60200 ;; FADR [1.0]
60300 ;; FADRB .COMM.+5 ;R4=R4+.5*RSTJ2*P5
60400 ;; MOVEM .COMM.+6 ;R5=R4
60500 ;; SETZM .COMM.+=26 ;J5=0
60600 ;; SETZM .COMM.+8 ;R7=0
60700 ;; SETZM .COMM.+=28 ;J7=0
60800 ;; SETZM .COMM.+=9 ;R8=0
60900 ;; SETZM .COMM.+=10 ;R9=0
61000 ;; MOVE SIZE
61100 ;; FADR [0.5] ;***MOVE, L, R, COMMANDS DON'T CHANGE P11,P12 YET!!
61200 ;; KIFIX
61300 ;; MOVEM .COMM.+=31 ;J10=SIZE+.5
61400 ;; JSA 16,ITMSUB ;GO MAKE DASH
61500 ;; JRA 16,(16)
61600
61700 BLANK: 0.70 ;NEW SIZE FOR BLANKS 1/80 (OLD SIZE WAS 1.0)
61800 SPACER: 0 ;CALL SPACERR(J5,IFNT,RB,R)
61900 MOVE @(16) ; J5 FOR NOW
62000 CAILE =47
62100 JRST SP10
62200 CAIG =9
62300 JRST SP117
62400 CAIGE =36
62500 JRST SP10
62600 SP117: MOVSI 3,201400 ;[1.0] AC3 IS RSX
62700 ;************************ NEW BLANK SIZE *******************
62800 CAIN =47 ;IS IT A BLANK?
62900 MOVE 3,BLANK ;IT IS! NEW SIZE=.70, OLD SIZE=1.0 CHANGE IN DDT IF NEEDED.
63000 SKIPGE @1(16) ;IFNT FOR NOW
63100 MOVE 3,[0.9]
63200 CAIE =39 ;;IS IT '='?
63300 JRST SP3
63400 MOVE 3,[1.2096] ;YES GIVIT MORE SPACE
63500 JRST SP21
63600
63700 SP14: SETZM @1(16)
63800 MOVEI 2,=10
63900 MOVEM 2,.COMM.+1 ;JA=10
64000 JRA 16,4(16)
64100
64200 SP10: CAIGE =47
64300 JRST SP5
64400 CAIN =52
64500 JRST SP14
64600 CAIGE =55
64700 JRA 16,4(16)
64800
64900 SP5: MOVE 3,[1.08]
65000 SKIPGE @1(16)
65100 MOVE 3,[0.96]
65200 CAIE =69 ;IS IT 1/8 NOTE?
65300 CAIN =22 ;IS IT M?
65400 JRST SP277
65500 CAIE =58 ;IS IT 1/4 NOTE?
65600 CAIN =59 ;IS IT 1/2?
65700 JRST SP277
65800 CAIE =32 ;IS IT W?
65900 JRST SP3
66000 SP277: FMPR 3,[1.12] ;3 IS RSX
66100 SP3: CAIGE =36
66200 CAIN 1
66300 JRST SP21
66400 CAIE =18
66500 CAIN =19
66600 JRST SP21
66700 SKIPL @1(16)
66800 JRST SP4
66900 CAIE =15 ; NEXT FOR LOWER CASE SPACING
67000 CAIN =21
67100 JRST SP21
67200 CAIE =29
67300 JRST SP4
67400 SP21: CAIE =47
67500 FMPR 3,[0.68] ;SPACER FOR A BLANK
67600 SP4: FMPR 3,@3(16) ;RB=RB+R*RSX
67700 FADRM 3,@2(16)
67800 JRA 16,4(16)
67900 END